/*
 * @Author: cooper
 * @Date: 2025-04-01 00:15:27
 * @Wechat: cmd_develop
 * @Description:
 */
#include "mds_error.h"

// 错误映射表
ErrorMapping errorMappings[] = {
    {SEND_ERROR_ARM_LONG_POS, "SEND_ERROR_ARM_LONG_POS"},     // 机械臂长轴报错
    {SEND_ERROR_ARM_SHORT_POS, "SEND_ERROR_ARM_SHORT_POS"},   // 机械臂短轴报错
    {SEND_ERROR_ARM_Z_POS, "SEND_ERROR_ARM_Z_POS"},           // 机械臂Z轴报错
    {SEND_ERROR_ARM_PAW_POS, "SEND_ERROR_ARM_PAW_POS"},       // 机械臂爪子报错
    {SEND_ERROR_ARM_STICK_POS, "SEND_ERROR_ARM_STICK_POS"},   // 机械臂臂杆报错
    {SEND_ERROR_LIFT_POS, "SEND_ERROR_LIFT_POS"},             // 升降机报错
    {SEND_ERROR_DOOR_POS, "SEND_ERROR_DOOR_POS"},             // 门控系统报错
    {SEND_ERROR_FOOD1_POS, "SEND_ERROR_FOOD1_POS"},           // 食物位置1报错
    {SEND_ERROR_FOOD2_POS, "SEND_ERROR_FOOD2_POS"},           // 食物位置2报错
    {SEND_ERROR_FOOD3_POS, "SEND_ERROR_FOOD3_POS"},           // 食物位置3报错
    {SEND_ERROR_FOOD4_POS, "SEND_ERROR_FOOD4_POS"},           // 食物位置4报错
    {SEND_ERROR_INIT_NOT_READY, "SEND_ERROR_INIT_NOT_READY"}, // 初始化未准备好
    {SEND_ERROR_BAKE_HAVE_POS, "SEND_ERROR_BAKE_HAVE_POS"},   // 烤制的时候，烤位占了肠，设备端进去丢弃处理
    {SEND_ERROR_ICEBOX_POS, "SEND_ERROR_ICEBOX_POS"},         // 冰柜的温度报警,大于临界值10度
    {SEND_ERROR_DEVICE_SHUTOFF, "SEND_ERROR_DEVICE_SHUTOFF"}  // 设备已关机

};

// 获取错误信息的函数
const char *getErrorMessage(ErrorType error)
{
    // 遍历映射表查找对应的错误信息
    for (int i = 0; i < sizeof(errorMappings) / sizeof(ErrorMapping); i++)
    {
        if (errorMappings[i].errorCode == error)
        {
            return errorMappings[i].errorMessage;
        }
    }
    return "Unknown error";
}
